<?php
namespace Kuoqi\DbDriver;


//数据库驱动需要实现的基本的接口方式们
interface DbInterface{
	
	//待链接的膜表数据库类型
	public function target($target_type);
	
	//执行链接的函数
	//返回对象本身
	//失败返回false
	public function connect( $dbhost = null, $dbport = null, $dbname = null, $user = null, $pass = null);
	
	//缓存
	public function cache($time);
	
	//实现table的实现方法
	//传入两个参数，第一个为table的名称
	//传入两个参数，第二个为table的别名
	//返回为当前对象
	public function table($tbname,$tbalias = '');
	
	//简单的配置表别称
	public function alias($tbaslas);
	
	//是否返回sql语句，多个语句只返回一个
	public function fetchSql($isSql = false);
	
	//data，增加数据或者修改数据的数据写入
	public function data($data);
	//andData,增加或者修改数据的时候去已经有的数据中追加数据的操作，没有数据则重建
	public function andData($data);
	
	//where条件对象
	//传入参数为条件对象[condition]
	//返回为当前对象驱动
	public function where($condition);
	
	
	//传入字段的方法定义
	public function field($params);
	
	//数据库排序
	public function order($orderby);
	
	//分组
	public function group($code);
	
	//数据库限制
	public function limit($condition);
	
	
	//join
	public function join($table,$condition);
	
	
	/**
	* remark:getField数据单字段查询
	*/
	public function getField($kname);
	
	/**
	* remark:setField数据单字段设置
	*/
	public function setField($kname,$kvalue);
	
	//数据库结果类-获取单个字段
	public function getOne($kname);
	
	//数据库结果类-设置单个字段
	public function setOne($kname,$kvalue);
	
	//数据库结果类-简单查询
	public function find($andWhere = array());
	
	//数据库结果类-简单多条数据查询
	public function select($andWhere = array());
	
	//数据库结果类-简单增加
	public function insert($andWhere = array());
	
	//数据库结果类-insert 的别称
	public function add($andWhere = array());
	
	//数据库结果类-简单更新
	public function update($andWhere = array());
	
	//数据库结果类-update的别称
	public function save($andWhere = array());
	
	//数据库结果类-简单查询
	public function delete($andWhere = array());
	
	//数据库结果类-删除 同delete
	public function del($andWhere = array());
	
	//数据库结果类-简单的条数查询
	public function count();
	
	
	//获取所有列名,默认获取完整版
	public function getColumns();
	
	
		
}